로딩 중이에요... 🐣
[코담]
웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트
05 데이터베이스 레코드 추가하기 | ✅ 편저: 코담 운영자
Django 튜토리얼 #5 - 데이터베이스 레코드 추가하기
🔗 소스
1. 강의 목표
- Django shell을 이용해 모델 클래스(Tour)의 객체를 생성하고 DB에 레코드로 저장하는 방법을 익힌다.
__str__
메서드를 추가해 객체의 출력 형태를 사용자 친화적으로 개선한다.
2. Django Shell 실행
python manage.py shell
- Django의 shell은 Python 또는 IPython 환경에서 실행 가능하며, ORM을 직접 테스트하고 조작하는 데 유용함
3. 모델 클래스 (models.py)
from django.db import models
# Tour 모델을 정의합니다.
class Tour(models.Model):
# 출발 국가, 도착 국가, 숙박 일수, 가격 정보를 저장합니다.
origin_country = models.CharField(max_length=64) # 출발 국가
destination_country = models.CharField(max_length=64) # 도착 국가
number_of_nights = models.IntegerField() # 숙박 일수
price = models.IntegerField() # 여행 가격
# Tour 인스턴스를 문자열로 표현할 때 사용됩니다.
def __str__(self):
return (f"ID:{self.id}: From {self.origin_country} To {self.destination_country}, {self.number_of_nights} nights costs ${self.price}")
✅ 코드 설명
origin_country
,destination_country
: 여행 출발지와 목적지 (문자열)number_of_nights
: 숙박 일수 (정수)price
: 투어 가격 (정수)__str__
메서드: Django Shell 또는 admin 페이지에서 객체 출력 시 사용자 친화적인 형식으로 표시됨- 예시:
ID:1: From Japan To China, 10 nights costs $1500
- 예시:
4. Tour 객체 생성 및 저장
from asiatoursagency.models import Tour
# 첫 번째 객체
t1 = Tour(
origin_country="Japan",
destination_country="China",
number_of_nights=10,
price=1500
)
t1.save()
# 두 번째 객체
t2 = Tour(
origin_country="Vietnam",
destination_country="South Korea",
number_of_nights=15,
price=20500
)
t2.save()
.save()
를 호출해야 DB에 실제 저장됨- 저장 전:
t2.id
는None
, 저장 후 자동으로 ID가 부여됨
5. 저장된 데이터 확인
Tour.objects.all()
출력 결과:
<QuerySet [
<Tour 1: From Japan To China, 10 nights costs $1500>,
<Tour 2: From Vietnam To South Korea, 15 nights costs $20500>
]>
__str__()
메서드 덕분에 출력이 명확하고 직관적으로 보임
다음 강의 예고
- 웹 페이지에서 템플릿을 통해 데이터베이스에 있는 내용을 출력하는 실습 진행 예정